package loja.services;

import java.util.ArrayList;
import java.util.List;

import loja.dao.DAOFactory;
import loja.dao.seguranca.SegurancaDAO;
import loja.model.seguranca.PerfilUsuario;
import loja.model.seguranca.Usuario;

public final class SegurancaService {

	private final SegurancaDAO segurancaDAO;

	public SegurancaService(DAOFactory daoFactory) {
		this.segurancaDAO = daoFactory.getSeguracaDAO();
	}

	public final void incluirUsuario(Usuario usuario, String nome, String senha) {
		if (isValideUser(nome, senha))
			segurancaDAO.incluirUsuario(usuario);
	}

	public final void removerUsuario(Usuario usuario, String nome, String senha) {
		if (isValideUser(nome, senha))
			segurancaDAO.removerUsuario(usuario);
	}

	public final void alterarSenha(String nome, String senha, String senhaNova) {
		if (isValideUser(nome, senha))
			this.segurancaDAO.alterarSenha(nome, senhaNova);
	}

	public final void alterarNick(String nome, String senha, String nick) {
		if (isValideUser(nome, senha))
			this.segurancaDAO.alterarNick(nome, nick);
	}

	public final List<PerfilUsuario> listarPerfisUsuario(String nome,
			String senha) {
		List<PerfilUsuario> perfis = new ArrayList<>();
		if (isValideUser(nome, senha))
			perfis = this.segurancaDAO.listarPerfisUsuario();
		return perfis;
	}

	public final Usuario consultarUsuario(String nome) {
		return this.segurancaDAO.consultarUsuario(nome);
	}

	private boolean isValideUser(String nome, String senha) {
		Usuario user = consultarUsuario(nome);
		boolean valid = false;
		if (user != null)
			if (user.getSenha().compareTo(senha) == 0)
				valid = true;
		return valid;
	}
}
